#ifndef __CLASIFICACION_DE_ALUMNOS_POR_DESCIPTOR_H__
#define __CLASIFICACION_DE_ALUMNOS_POR_DESCIPTOR_H__

#include "Lista.h"
#include "alumno.h"

class ClasificacionDeAlumnosPorDescriptor {

private:
	DescriptorAlumno descriptor;
	Lista<Alumno*>* falso;
	Lista<Alumno*>* verdadero;

public:
	/**
	* Postcondiciones: La objeto queda creado sin alumnos y con descriptor
	*                  PROMEDIO_MAYOR_A_CUATRO.
	*/
	ClasificacionDeAlumnosPorDescriptor();

	/**
	* Postcondiciones: Libera los recursos utilizador por el objeto, pero
	*                  NO las listas de alumnos.
	*/
	~ClasificacionDeAlumnosPorDescriptor();

	/**
	* Postcondiciones: El descriptor queda seteado en nuevoDescriptor.
	*/
	void setDescriptor(DescriptorAlumno nuevoDescriptor);

	/**
	* Postcondiciones: Retorna el descriptor por el cual se clasificaron los
	*                  alumnos.
	*/
	DescriptorAlumno getDescriptor();

	/**
	* Postcondiciones: Retorna una lista conlos alumnos con el descriptor
	*                  seteado en TRUE.
	*/
	Lista<Alumno*>* getListaVerdadero();

	/**
	* Postcondiciones: Retorna una lista conlos alumnos con el descriptor
	*                  seteado en FALSE.
	*/
	Lista<Alumno*>* getListaFalso();

	/**
	* Postcondiciones: El alumno queda agregado a la clasificacion, en la
	*                  lista de alumnos con el descriptor en TRUE.
	*/
	void agregarAlumnoListaVerdadero(Alumno *);

	/**
	* Postcondiciones: El alumno queda agregado a la clasificacion, en la
	*                  lista de alumnos con el descriptor en FALSE.
	*/
	void agregarAlumnoListaFalso(Alumno *);
};

#endif /* __CLASIFICACION_DE_ALUMNOS_POR_DESCIPTOR_H__ */
